Galileo Computing < openbook > Galileo Computing - Professionelle Bücher. Auch für Einsteiger.

...powered by www.netzwerkartist.de...

 <<   zurück
Visual Basic 2005 von Andreas Kühnel
Das umfassende Handbuch
Buch: Visual Basic 2005

Visual Basic 2005
1.233 S., mit 2 CDs, 59,90 Euro
Galileo Computing
ISBN 3-89842-585-1
gp Kapitel 5 Das Klassendesign (Teil 2)
  gp 5.1 Statische Klassenkomponenten
    gp 5.1.1 Die Realisierung eines Objektzählers
    gp 5.1.2 Zugriff auf statische Komponenten
    gp 5.1.3 Statische Klassenvariable in der Klasse »Circle«
    gp 5.1.4 Klassenspezifische Methoden
    gp 5.1.5 Statische Methoden in der Klasse »Circle«
    gp 5.1.6 Statische Klasseninitialisierer
    gp 5.1.7 Zusammenfassung
  gp 5.2 Delegaten
    gp 5.2.1 Einführung in das Prinzip der Delegaten
    gp 5.2.2 Zusammenfassung der Arbeitsschritte
    gp 5.2.3 Vereinfachter Aufruf eines Delegaten
  gp 5.3 Ereignisse eines Objekts
    gp 5.3.1 Ergänzung eines Ereignisses in einer Ereignisquelle
    gp 5.3.2 Die Behandlung eines Ereignisses im Ereignisempfänger
    gp 5.3.3 Ereignisse mit Übergabeparameter
    gp 5.3.4 Die Handles-Klausel
    gp 5.3.5 Die Registrierung eines Ereignishandlers mit »AddHandler«
    gp 5.3.6 Zusammenfassung
  gp 5.4 Strukturen – eine Sonderform der Klassen
    gp 5.4.1 Die Definition einer Struktur
    gp 5.4.2 Initialisieren einer Struktur
    gp 5.4.3 Ereignisse in einer Struktur
    gp 5.4.4 Änderung der Klasse »Circle«
    gp 5.4.5 Zusammenfassung der Unterscheidungsmerkmale Klasse – Struktur
  gp 5.5 Enumerationen (Aufzählungen)
    gp 5.5.1 Alle Mitglieder einer Aufzählung durchlaufen
  gp 5.6 Referenz- und Wertetypen
    gp 5.6.1 Typumwandlung mit Boxing
    gp 5.6.2 Die Unboxing-Konvertierung
    gp 5.6.3 Zusammenfassung
  gp 5.7 Namensräume (Namespaces)
    gp 5.7.1 Zugriff auf Namespaces
    gp 5.7.2 Die »Imports«-Anweisung
    gp 5.7.3 Aliasnamen zur Vermeidung von Mehrdeutigkeiten
    gp 5.7.4 Aufrufe mit »Global« umleiten
    gp 5.7.5 Namespaces festlegen
    gp 5.7.6 Zusammenfassung


Galileo Computing

5.5 Enumerationen (Aufzählungen)  downtop

Eine Enumeration ist von der Klasse Enum abgeleitet und als Gruppierung mehrerer Konstanten zu verstehen, die zur Laufzeit nicht verändert werden können. Alle in einer Enumeration enthaltenen Konstanten sind vom gleichen Datentyp. Dabei kann es sich um Byte, Short, Integer oder Long handeln, andere sind nicht zugelassen. Die Angabe des Typs der Enumeration erfolgt in der Deklaration. Betrachten Sie dazu das folgende Beispiel der Auflistung Spielkarte:


Public Enum Spielkarte As Byte
Karo = 9
Herz = 10
Pik = 11
Kreuz = 12
End Enum

Eine Enumeration wird mit dem Schlüsselwort Enum unter Voranstellung eines Zugriffsmodifizierers eingeleitet und mit End Enum abgeschlossen. Hinter der Angabe des Bezeichners kann optional der Datentyp aller der in der Auflistung enthaltenen Konstanten angegeben werden. Wird auf die Angabe verzichtet, handelt es sich standardmäßig um Integer-Konstanten. Der von den Konstanten repräsentierte Wert kann ausdrücklich zugewiesen werden, ansonsten wird er automatisch vergeben. In letzterem Fall steht das erste Element für den Wert 0, der sich mit jedem Folgeelement um +1 erhöht. Andererseits können bei einer expliziten Wertzuweisung die Konstantenwerte auch negativ sein. Beachten Sie, dass bei einer expliziten Wertzuweisung der Wert als Basis für die Nummerierung aller Folgeelemente benutzt wird:


Public Enum TestEnum
a = –2
b
c
End Enum

Da das erste Element (a) für den Konstantenwert –2 steht, gilt für das Folgeelement (b) der Wert –1 und für das letzte Element (c) schließlich 0. Selbstverständlich muss bei einer durchweg expliziten Angabe der Konstantenwerte keine Reihenfolge eingehalten werden. Andererseits dürfen unterschiedlich Enum-Elemente durchaus dieselben Werte repräsentieren.

Eine Enumeration wird von der Common Language Runtime wie ein Wertetyp behandelt. Daher ist eine Variablendeklaration notwendig, um Nutzen aus der Auflistung zu ziehen:


Dim myGame As Spielkarte

Die Variable myGame kann nun für ein beliebiges Element der Auflistung stehen. Um welches es sich genau handeln soll, muss nachfolgend mit der Punktnotation bekannt gegeben werden.


myGame = Spielkarte.Herz

Eine andere Variante ist, einer beliebigen, ganzzahligen Variablen den Wert einer auf einem Enum-Typen basierenden Variablen zuweisen:


Dim myGame As Spielkarte
Dim intVar As Integer
intVar = myGame.Karo

Sollte es erforderlich sein, können Sie Strukturen auch ineinander verschachteln. Die einzelnen Ebenen werden – wie üblich – durch Punktnotation voneinander getrennt.


Galileo Computing

5.5.1 Alle Mitglieder einer Aufzählung durchlaufen  toptop

Enumerationen werden uns im zweiten Teil dieses Buches, wenn wir uns der Programmierung von Windows-Anwendungen widmen, häufig begegnen. Dabei wird es manchmal sinnvoll sein, die Mitglieder einer Aufzählung in einer Schleife abzugreifen. Ich möchte Ihnen am Beispiel der Aufzählung Spielkarte demonstrieren, wie das programmiertechnisch realisiert wird.


' --------------------------------------------------------------
' Beispiel: ...\Kapitel 5\Enumeration
' --------------------------------------------------------------
Module Module1
Sub Main()
Dim karte As Spielkarte
For Each karte In [Enum].GetValues(GetType(Spielkarte))
Console.WriteLine(karte.ToString())
Next
Console.ReadLine()
End Sub
End Module
Public Enum Spielkarte As Long
Karo = 9
Herz = 10
Pik = 11
Kreuz = 12
End Enum

Wir können in solchen Fällen nicht mit einer herkömmlichen For-Schleife operieren, sondern müssen dazu die For Each-Schleife benutzen, die ein Array elementweise durchläuft. Dieses Array müssen wir uns noch besorgen.

Eingangs wurde bereits erwähnt, dass alle Enumerationen aus der Klasse Enum abgeleitet werden. Diese stellt mit GetValues eine statische Methode zur Verfügung, die uns eine Array-Referenz aller in der Aufzählung enthaltenen Konstanten zurückliefert. GetValues ist wie folgt definiert:


Public Shared Function GetValues(enumType As Type) As Array

Der Rückgabewert ist vom Typ Array, das Übergabeargument vom Typ Type. Dieser Typ liefert Informationen über einen Datentyp, beispielsweise über die von einer Klasse veröffentlichten Methoden und Felder. Dazu müssen wir uns nur den beschreibenden Type eines bestimmten Datentyps besorgen. Hier hilft die VB-spezifische Operator GetType weiter, dem wir als Argument den Typbezeichner übergeben. Der Ausdruck


[Enum].GetValues(GetType(Spielkarte))

liefert die Elemente der Enumeration als Array, das wir mit karte vom ersten bis zum letzten Element durchlaufen. Bei jedem Schleifendurchlauf zeigt karte auf eine andere Konstante, deren Namen wir an der Konsole ausgeben lassen.

Beachten Sie, dass zur Unterscheidung des VB-spezifischen Schlüsselworts Enum von der Klasse Enum Letztere in eckigen Klammern angegeben werden muss.

 <<   zurück
  
  Zum Katalog
Zum Katalog: Visual Basic 2005
Visual Basic 2005
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Visual C# 2005






 Visual C# 2005


Zum Katalog: Fortgeschrittene Programmierung mit Visual C# 2005






 Fortgeschrittene
 Programmierung
 mit Visual C# 2005


Zum Katalog: Das Programmierhandbuch SQL Server 2005






 Das Programmier-
 handbuch
 SQL Server 2005


Zum Katalog: Einstieg in Visual Basic 2005






 Einstieg in
 Visual Basic 2005


Zum Katalog: Einstieg in Visual C# 2005






 Einstieg in
 Visual C# 2005


Zum Katalog: Konzepte und Lösungen für Microsoft-Netzwerke






 Konzepte und
 Lösungen für
 Microsoft-Netzwerke


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo








Copyright © Galileo Press 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Galileo Computing]

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de